import axios from "axios";
const instance = axios.create({
  baseURL: "http://websocket.1uu.pw",
  timeout: 3000,
});

function generateRandomToken() {
  // 由于 substring(2, 10) 固定提取 8 个字符，因此生成的字符串长度总是 8。
  // toString(radix)
  // 如果 radix 是 36，则使用 36 进制（0-9 和 a-z）。
  return Math.random().toString(36).substring(2, 10);
}

instance.interceptors.request.use(
  (config) => {
    if (!config.headers["AuthorKou"]) {
      const token = generateRandomToken();
      config.headers["AuthorKou"] = token;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

instance.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
    if (error.response) {
      alert("请求失败: " + error.response.data.message || "未知错误");
    } else {
      alert("网络异常，请检查网络连接");
    }
    return Promise.reject(error);
  }
);

export default instance;
